package com.fire.control.system.module.login.service;

import javax.servlet.http.HttpServletRequest;

import com.fire.control.system.dto.UserDTO;
import com.fire.control.system.standard.BusinessInterfaceStandard;
import com.fire.control.system.support.protocol.comman.ResponseProtocol;
import com.fire.control.system.support.protocol.login.LoginRequestProtocol;

/**
 * @author liuxincheng
 * @ClassName: ILoginService
 * @Description: TODO(登陆业务层)
 * @author A18ccms a18ccms_gmail_com
 * @date 2017年5月5日 上午11:16:13
 */
public interface ILoginService extends BusinessInterfaceStandard<LoginRequestProtocol,ResponseProtocol>{
	
	/**
	 * @author  liuxincheng
	 * @Title: jumpToLoginPage
	 * @Description: TODO(跳转到登陆页面)
	 * @param @param requestProtocol
	 * @param @return    设定文件
	 * @return ResponseProtocol    返回类型
	 * @throws
	 */
	public ResponseProtocol jumpToLoginPage(LoginRequestProtocol requestProtocol,HttpServletRequest request);
	
	/**
	 * @author  liuxincheng
	 * @Title: login
	 * @Description: TODO(WEB端-验证码登陆)
	 * @param @param requestProtocol
	 * @param @return    设定文件
	 * @return ResponseProtocol    返回类型
	 * @throws null
	 */
	public ResponseProtocol loginByIdenCode(LoginRequestProtocol requestProtocol,HttpServletRequest request);
	
	/**
	 * @author liuxincheng
	 * @Title: loginByAccount
	 * @Description: TODO(账号登陆)
	 * @param @param requestProtocol
	 * @param @return    设定文件
	 * @return ResponseProtocol    返回类型
	 * @throws null
	 */
	public ResponseProtocol loginByAccount(LoginRequestProtocol requestProtocol);
	
	/**
	 * @author liuxincheng
	 * @Title: loginOut
	 * @Description: TODO(登出系统)
	 * @param @param requestProtocol
	 * @param @param user
	 * @param @return    设定文件
	 * @return ResponseProtocol    返回类型
	 * @throws null
	 */
	public ResponseProtocol loginOut(LoginRequestProtocol requestProtocol,UserDTO user,HttpServletRequest request);
	
	/**
	 * @author  liuxincheng
	 * @Title: SendSms
	 * @Description: TODO(发送验证码)
	 * @param @param requestProtocol
	 * @param @return    设定文件
	 * @return ResponseProtocol    返回类型
	 * @throws
	 */
	public ResponseProtocol SendSms(LoginRequestProtocol requestProtocol);
	
	/**
	 * @author  liuxincheng
	 * @Title: LoginBySms
	 * @Description: TODO(验证码验证登陆)
	 * @param @param requestProtocol
	 * @param @return    设定文件
	 * @return ResponseProtocol    返回类型
	 * @throws null
	 */
	public ResponseProtocol LoginBySms(LoginRequestProtocol requestProtocol);
	
	/**
	 * @author liuxincheng
	 * @Title: loginOutApp
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @param requestProtocol
	 * @param @param user
	 * @param @return    设定文件
	 * @return ResponseProtocol    返回类型
	 * @throws
	 */
	public ResponseProtocol loginOutApp(LoginRequestProtocol requestProtocol,UserDTO user);
}
